home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
EnigmA Amiga Run 1997 February
/
EnigmA AMIGA RUN 15 (1997)(G.R. Edizioni)(IT)[!][issue 1997-02][PLANET CD V].iso
/
enigma
/
earcd
/
musicali
/
splib52d.lha
/
superplay-lib_DEV
/
Programmers
/
include
/
spobjects
/
spobjects.h
< prev
Wrap
C/C++ Source or Header
|
1996-11-15
|
4KB
|
111 lines
/*
** $VER: spobjects.h 5.1 (8.8.96)
**
** main include file for SPObject programming
**
** (C) Copyright 1994-96 Andreas R. Kleinert
** All Rights Reserved.
*/
#ifndef SPOBJECTS_SPOBJECTS_H
#define SPOBJECTS_SPOBJECTS_H
#define SVO_LIB_MINIMUM 3 /* lowest supported version */
#define SVO_LIB_VERSION 3 /* just for information */
struct SPO_ObjectNode
{
struct Node spo_Node; /* chaining Node */
ULONG spo_Version; /* Library-Version of spobject */
ULONG spo_ObjectType; /* see below */
UBYTE spo_FileName [108]; /* use 30, as in struct FileInfoBlock */
UBYTE spo_TypeID [32]; /* e.g. "MED" */
ULONG spo_TypeCode; /* ... and its appropriate Code, , */
/* assigned by superplay.library LATER. */
ULONG spo_SubTypeNum; /* actually available SubTypes */
/* (maximum 16) of the spobject. */
UBYTE spo_SubTypeID [16][16]; /* e.g. "MMD0" or "MMD1" */
ULONG spo_SubTypeCode [16]; /* ... and their appropriate Codes, */
/* assigned by superplay.library LATER. */
ULONG spo_BackgroundReplay; /* Runs in the Background ? (Boolean) */
/* may grow dependent on spo_Version */
};
#define SPO_VERSION (3)
/* ^ DO NOT USE THIS DEFINE IN SOURCECODE ! */
/* AVOID INCREASING IT VIA RECOMPILATION ! */
#define SPO_OBJECTTYPE_NONE ((ULONG) 0)
#define SPO_OBJECTTYPE_UNKNOWN SPO_OBJECTTYPE_NONE
#define SPO_OBJECTTYPE_ILLEGAL ((ULONG) 0xFFFFFFFF)
#define SPO_OBJECTTYPE_SAMPLE ((ULONG) 1) /* Raw Sample */
#define SPO_OBJECTTYPE_MODULE ((ULONG) 2) /* Specific Sound Module */
/* There may be more types in the future : simply reject unknown types. */
/* ----------------------------------------------------------------------- */
struct SPO_SampleList /* Header of "SampleEntry"-List */
{
struct List sl_EntryList; /* List itself */
ULONG sl_NumEntries; /* number of entries in List */
};
struct SPO_SampleEntry /* may e.g. contain SampleData */
{
struct Node se_Node; /* the chaining Node */
ULONG se_Version; /* SPObject's Version (2) */
ULONG se_Type; /* Sample ? */
/* The following entries are only valid, if se_Type is == SE_TYPE_SAMPLE */
UBYTE *se_SampleBuffer; /* SampleData (CHIP-Ram) */
ULONG se_SampleSize; /* size of SampleData in Bytes */
ULONG se_SampleBits; /* 8, 16 */
ULONG se_SamplesPerSec; /* as needed with audio.device */
ULONG se_Volume; /* as needed with audio.device */
/* more entries may follow in the future */
};
#define SE_TYPE_NONE ((ULONG) 0)
#define SE_TYPE_UNKNOWN SE_TYPE_NONE
#define SE_TYPE_ILLEGAL ((ULONG) 0xFFFFFFFF)
#define SE_TYPE_SAMPLE ((ULONG) 1) /* Entry contains Sample Data */
/* There may be more types in the future : simply reject unknown types.
Do not examine unknown SampleEntry-Types. They may contain data,
which is structured different from the above in the future !
*/
/* This structure has to be passed to SPObject's SPO_CheckFileType()
function, if media other than SPO_MEDIUM_DISK are used for reading.
*/
struct SPOCheckFile
{
ULONG spc_Medium; /* SPO_MEDIUM_... */
ULONG spc_Future; /* as usual */
};
#endif /* SPOBJECTS_SPOBJECTS_H */